% fname: routing_xy__topology_8x8__.m
% ./noxim -routing xy -dimx 8 -dimy 8  -sim 10000 -warmup 2000 -size 8 8 -buffer 4 

function [max_pir, max_throughput, min_delay] = routing_xy__topology_8x8__(symbol)

data = [
%             pir      avg_delay     throughput      max_delay       rpackets         rflits
             0.01        24.1091      0.0787852            149           5039          40338
             0.01        23.2609      0.0796387            201           5097          40775
             0.01        24.3055      0.0795566            269           5090          40733
             0.01        23.8136      0.0801133            180           5129          41018
             0.01        23.8632      0.0796113            123           5095          40761
             0.01        24.0385       0.081627            140           5225          41793
             0.01        22.8339      0.0791934            149           5068          40547
             0.01        23.3397      0.0795684            170           5093          40739
             0.01        24.0693      0.0804043            176           5148          41167
             0.01        23.6524      0.0787324            148           5040          40311
             0.01        23.8868      0.0796328            122           5099          40772
             0.01        23.7171      0.0781406            148           5001          40008
             0.01        24.2456      0.0790254            192           5058          40461
             0.01        22.5951      0.0771035            151           4932          39477
             0.01        24.7941      0.0813984            129           5211          41676
             0.01        24.1088      0.0790332            171           5054          40465
             0.01        23.5987      0.0794863            177           5086          40697
             0.01        24.9913      0.0806152            179           5161          41275
             0.01        25.1929       0.081416            237           5211          41685
             0.01        23.5103      0.0796133            165           5095          40762
           0.0105        25.4055      0.0845898            194           5413          43310
           0.0105        25.7199      0.0842461            199           5391          43134
           0.0105        26.6504      0.0841426            212           5386          43081
           0.0105        26.0799      0.0845098            173           5407          43269
           0.0105        26.2422      0.0841445            194           5387          43082
           0.0105        26.9552      0.0854766            236           5473          43764
           0.0105        26.0125      0.0853809            177           5459          43715
           0.0105        25.1222      0.0846641            162           5419          43348
           0.0105        25.5338      0.0842891            158           5395          43156
           0.0105        24.5943      0.0834746            178           5341          42739
           0.0105         25.174      0.0841621            210           5384          43091
           0.0105        25.4143      0.0823184            217           5269          42147
           0.0105         26.366      0.0826738            208           5290          42329
           0.0105        24.7604      0.0852109            154           5454          43628
           0.0105        26.4505      0.0855977            198           5476          43826
           0.0105        25.4689      0.0840664            257           5379          43042
           0.0105        25.1782      0.0857402            149           5489          43899
           0.0105        24.9516      0.0826055            156           5284          42294
           0.0105        25.5811      0.0852949            204           5459          43671
           0.0105         26.212      0.0841172            199           5381          43068
            0.011        27.6981      0.0901621            215           5771          46163
            0.011        28.1291      0.0904141            219           5788          46292
            0.011        25.2112      0.0866289            173           5544          44354
            0.011        25.0664      0.0862969            158           5524          44184
            0.011        26.0729       0.087416            182           5595          44757
            0.011        25.4686      0.0870742            203           5574          44582
            0.011        26.7329      0.0879551            168           5628          45033
            0.011        27.8079       0.088125            195           5643          45120
            0.011        25.2571      0.0872266            138           5586          44660
            0.011        26.7575      0.0896641            210           5741          45908
            0.011        26.7081      0.0883594            171           5656          45240
            0.011        26.4532       0.089916            173           5757          46037
            0.011        26.8541      0.0876406            199           5608          44872
            0.011        25.1214      0.0855859            130           5480          43820
            0.011        27.6493      0.0909473            194           5822          46565
            0.011         25.172      0.0865684            163           5541          44323
            0.011        27.2814      0.0876914            264           5611          44898
            0.011        26.9319      0.0885176            198           5667          45321
            0.011        27.1514      0.0889922            293           5693          45564
            0.011         25.938      0.0872109            213           5585          44652
           0.0115        26.7296       0.090377            169           5783          46273
           0.0115        27.7186      0.0925742            208           5925          47398
           0.0115         28.695      0.0907188            188           5804          46448
           0.0115        28.1457      0.0921582            191           5904          47185
           0.0115        28.4236      0.0917852            246           5876          46994
           0.0115         26.144      0.0917812            221           5877          46992
           0.0115        27.2753      0.0911328            151           5834          46660
           0.0115        27.3805      0.0923516            180           5914          47284
           0.0115        28.6318      0.0917734            218           5875          46988
           0.0115        28.3982      0.0922773            155           5906          47246
           0.0115        26.5339       0.091543            169           5857          46870
           0.0115        28.5921      0.0922266            201           5898          47220
           0.0115        29.5886       0.093834            244           6007          48043
           0.0115        28.5687      0.0919043            194           5882          47055
           0.0115        28.1638      0.0929922            174           5951          47612
           0.0115         27.894       0.092707            197           5934          47466
           0.0115        28.3368      0.0928418            208           5944          47535
           0.0115        28.5863      0.0933887            164           5978          47815
           0.0115        28.0824      0.0928008            191           5937          47514
           0.0115        27.2652      0.0930098            179           5950          47621
            0.012        28.6615      0.0958887            173           6139          49095
            0.012        30.3995      0.0970039            214           6205          49666
            0.012        29.1215      0.0967754            171           6195          49549
            0.012        29.3787      0.0951328            221           6087          48708
            0.012        29.8907      0.0969199            275           6204          49623
            0.012        30.3049      0.0963047            231           6162          49308
            0.012        28.7129      0.0965723            261           6182          49445
            0.012        30.2164      0.0957188            285           6124          49008
            0.012         29.565      0.0961367            290           6152          49222
            0.012         30.906      0.0980117            303           6274          50182
            0.012        31.1701       0.096834            250           6198          49579
            0.012        30.2032       0.095873            260           6136          49087
            0.012        28.5805      0.0948945            233           6071          48586
            0.012        28.2984      0.0955918            225           6113          48943
            0.012        29.2713      0.0963164            206           6164          49314
            0.012        29.7597       0.097123            270           6216          49727
            0.012        30.4361      0.0965703            211           6180          49444
            0.012        30.5402      0.0968281            323           6198          49576
            0.012        30.8839      0.0971621            292           6219          49747
            0.012        28.9792      0.0946641            268           6058          48468
           0.0125        32.3177       0.099707            297           6383          51050
           0.0125        31.4045      0.0995918            487           6373          50991
           0.0125        31.3843      0.0985723            251           6308          50469
           0.0125        33.6953       0.101492            259           6494          51964
           0.0125         32.211       0.099332            313           6354          50858
           0.0125        29.3906      0.0985176            172           6303          50441
           0.0125        31.1943        0.10027            248           6419          51338
           0.0125        31.4197       0.100309            323           6422          51358
           0.0125        31.5411       0.100854            242           6454          51637
           0.0125        32.5367      0.0986309            382           6316          50499
           0.0125        31.1526       0.100604            232           6441          51509
           0.0125        33.3806       0.101094            231           6469          51760
           0.0125        31.3104      0.0994453            424           6363          50916
           0.0125        31.3651      0.0998535            254           6390          51125
           0.0125        31.8647       0.100389            224           6424          51399
           0.0125        32.3441       0.100855            258           6452          51638
           0.0125        32.0045      0.0999316            357           6395          51165
           0.0125        30.0241      0.0978086            251           6262          50078
           0.0125        30.5288       0.101506            232           6500          51971
           0.0125        31.6454       0.100416            237           6425          51413
            0.013        33.3013       0.103389            283           6617          52935
            0.013        33.1639       0.104387            221           6685          53446
            0.013        33.6652       0.104771            340           6702          53643
            0.013        34.8079       0.105217            471           6730          53871
            0.013        32.1208       0.102332            264           6546          52394
            0.013        31.9496       0.102283            263           6546          52369
            0.013        31.5962       0.102193            205           6540          52323
            0.013        33.3792       0.102793            259           6579          52630
            0.013        33.3097        0.10524            258           6736          53883
            0.013        32.8085        0.10448            279           6688          53494
            0.013        35.9365       0.106271            294           6803          54411
            0.013        34.0555       0.103576            235           6630          53031
            0.013        33.6982       0.103988            263           6659          53242
            0.013        34.6767       0.103502            471           6628          52993
            0.013        33.1149       0.103949            186           6651          53222
            0.013        33.5166       0.103674            330           6634          53081
            0.013        33.4072       0.104818            281           6706          53667
            0.013        33.7708       0.103131            440           6596          52803
            0.013        32.5576       0.102484            359           6560          52472
            0.013        33.9087        0.10517            283           6728          53847
           0.0135        36.3448       0.106203            251           6802          54376
           0.0135         33.424       0.105965            272           6783          54254
           0.0135        35.5429        0.10925            272           6994          55936
           0.0135        38.0196       0.110711            337           7085          56684
           0.0135         40.575       0.109135            397           6984          55877
           0.0135        36.6467       0.106174            390           6791          54361
           0.0135        35.0003       0.108764            405           6962          55687
           0.0135        33.6019       0.105973            288           6783          54258
           0.0135        39.6634       0.107572            482           6890          55077
           0.0135        36.7828       0.108352            379           6933          55476
           0.0135        37.9365       0.109008            328           6979          55812
           0.0135        36.2065       0.105227            362           6732          53876
           0.0135        35.2736       0.107602            284           6889          55092
           0.0135        40.5334       0.110258            488           7056          56452
           0.0135        36.2104       0.107563            341           6888          55072
           0.0135        37.7551       0.110074            379           7044          56358
           0.0135        35.7433       0.107582            295           6887          55082
           0.0135        40.1092       0.109092            579           6980          55855
           0.0135        35.1314       0.109172            254           6986          55896
           0.0135        45.1343       0.109945            779           7036          56292
            0.014        40.8724       0.111014            348           7106          56839
            0.014         40.889       0.114297            473           7313          58520
            0.014        43.5051       0.112305            366           7187          57500
            0.014        41.8912       0.113465            357           7262          58094
            0.014        38.9493       0.112412            411           7194          57555
            0.014        38.9777       0.112824            309           7220          57766
            0.014        37.1233       0.110443            275           7070          56547
            0.014        40.6923       0.110234            300           7056          56440
            0.014        42.9053       0.112133            509           7178          57412
            0.014        39.8221       0.113115            397           7239          57915
            0.014        35.9819       0.110797            292           7091          56728
            0.014        40.9586       0.111312            350           7125          56992
            0.014        36.4066       0.110121            303           7048          56382
            0.014         41.602       0.112807            399           7219          57757
            0.014        37.8391       0.113584            304           7272          58155
            0.014        38.5944       0.110887            359           7093          56774
            0.014        40.3282       0.112691            373           7210          57698
            0.014        40.7236       0.112633            503           7207          57668
            0.014        42.4758       0.113574            365           7272          58150
            0.014        40.7133       0.112031            327           7165          57360
           0.0145        52.4213       0.118227            519           7563          60532
           0.0145        41.8416       0.114404            394           7323          58575
           0.0145        42.8384       0.116861            309           7477          59833
           0.0145        42.6474       0.116637            359           7461          59718
           0.0145        48.2895       0.116145            490           7431          59466
           0.0145        41.7973       0.116354            303           7450          59573
           0.0145        43.1398       0.114646            383           7338          58699
           0.0145        40.3766       0.115025            395           7363          58893
           0.0145        45.7238       0.116369            486           7450          59581
           0.0145        45.8711       0.117512            422           7517          60166
           0.0145        39.5033       0.114752            335           7344          58753
           0.0145        47.6045       0.115375            610           7380          59072
           0.0145        40.3977       0.114738            328           7340          58746
           0.0145        42.3332        0.11424            353           7310          58491
           0.0145        40.6611       0.114367            307           7318          58556
           0.0145        48.8268       0.117604            465           7527          60213
           0.0145        40.7888       0.115496            363           7395          59134
           0.0145        43.6882       0.116447            394           7453          59621
           0.0145        44.8811       0.118262            334           7570          60550
           0.0145        46.7861       0.117225            565           7504          60019
            0.015        45.2161       0.119816            409           7668          61346
            0.015        51.7972       0.121961            573           7809          62444
            0.015        57.9971       0.118563            720           7589          60704
            0.015        49.9564       0.120285            580           7699          61586
            0.015        45.7163       0.118865            352           7610          60859
            0.015        46.1222       0.118777            475           7603          60814
            0.015        45.2362       0.119805            393           7667          61340
            0.015        52.8838        0.11735            480           7511          60083
            0.015        46.5313       0.118613            484           7594          60730
            0.015        49.6342       0.120254            767           7695          61570
            0.015        53.5001       0.119711            640           7660          61292
            0.015        48.6696       0.119035            404           7620          60946
            0.015        51.6864       0.120977            463           7742          61940
            0.015         48.835       0.118934            604           7610          60894
            0.015        46.7301       0.118455            826           7581          60649
            0.015        49.7522       0.120119            758           7687          61501
            0.015        57.6591       0.121635            578           7782          62277
            0.015        49.7306       0.119707            508           7662          61290
            0.015        45.5858       0.117791            521           7540          60309
            0.015        54.0662       0.120889            471           7733          61895
           0.0155        56.7315       0.122709            495           7855          62827
           0.0155        69.5551       0.124709            635           7982          63851
           0.0155        63.7569         0.1256            806           8042          64307
           0.0155        61.4281       0.124217            656           7952          63599
           0.0155        64.2351       0.122979           1217           7872          62965
           0.0155        61.2098       0.124732            769           7980          63863
           0.0155        55.8301       0.124986            508           8001          63993
           0.0155         49.255       0.121514            608           7777          62215
           0.0155        57.0479       0.125285            542           8022          64146
           0.0155        60.1898       0.123967            872           7936          63471
           0.0155        80.7897       0.125496           1635           8028          64254
           0.0155        50.4568        0.12352            392           7907          63242
           0.0155         71.933       0.123514            836           7905          63239
           0.0155        57.2616       0.124543            680           7971          63766
           0.0155        62.5525       0.125102            613           8006          64052
           0.0155        72.5235       0.126682           1388           8109          64861
           0.0155        61.9124       0.123008            985           7873          62980
           0.0155        59.9026       0.124027            762           7937          63502
           0.0155        59.1837       0.123818           1042           7925          63395
           0.0155        60.4396       0.124502            842           7966          63745
            0.016        79.3505       0.128664           1124           8236          65876
            0.016        62.4342       0.128365            576           8216          65723
            0.016         74.127       0.130545            724           8353          66839
            0.016        65.4896       0.126854            573           8119          64949
            0.016        74.4889       0.127088           1056           8131          65069
            0.016        63.9046       0.123787            912           7921          63379
            0.016        63.4566       0.127082            919           8132          65066
            0.016        69.5973       0.128764            780           8239          65927
            0.016        74.3924       0.130648            623           8363          66892
            0.016        65.0087       0.127988            499           8192          65530
            0.016        99.4943       0.130486           1107           8349          66809
            0.016        78.2557       0.129379            706           8279          66242
            0.016        64.5312       0.127375            593           8148          65216
            0.016        75.6951       0.128162            894           8203          65619
            0.016        69.4726        0.12925            730           8275          66176
            0.016        73.7854       0.126496            724           8094          64766
            0.016        79.6781       0.127488            948           8162          65274
            0.016        66.5451       0.127654            834           8171          65359
            0.016         64.391       0.129104            497           8260          66101
            0.016        67.7803        0.12658            968           8098          64809
           0.0165        83.6256       0.132779            877           8497          67983
           0.0165        84.3425       0.130137           1368           8325          66630
           0.0165        83.0553        0.13235            809           8470          67763
           0.0165        87.8225       0.130938           1489           8382          67040
           0.0165        84.0514       0.129811           1134           8305          66463
           0.0165        76.0802       0.131781            695           8438          67472
           0.0165        91.1483       0.133986           1367           8576          68601
           0.0165        77.4049       0.131385           1126           8409          67269
           0.0165        74.4859       0.128826           1035           8246          65959
           0.0165         94.801       0.132211           1287           8462          67692
           0.0165        64.3155       0.130529            640           8355          66831
           0.0165        81.1467       0.130449            837           8349          66790
           0.0165        101.741       0.132424           1141           8479          67801
           0.0165        69.3561       0.130109            955           8329          66616
           0.0165        95.5601         0.1324            983           8472          67789
           0.0165         96.146        0.13285           1006           8501          68019
           0.0165        74.7775       0.131807            688           8436          67485
           0.0165        82.7128       0.133242           1129           8530          68220
           0.0165         76.474       0.131029            602           8386          67087
           0.0165        80.1112       0.130896           1011           8378          67019
            0.017        137.958       0.137133           2194           8776          70212
            0.017        90.5429       0.133602           1210           8551          68404
            0.017        125.539       0.134168           1669           8590          68694
            0.017        103.158       0.135064           1103           8641          69153
            0.017        111.454       0.135094           1688           8648          69168
            0.017        182.948        0.13692           2125           8765          70103
            0.017        87.5992        0.13277            828           8497          67978
            0.017        124.017       0.134766           1216           8625          69000
            0.017        132.362       0.136707           1778           8750          69994
            0.017        106.051       0.135623           1560           8682          69439
            0.017        115.795       0.136617           1815           8743          69948
            0.017        124.397       0.134789           1131           8628          69012
            0.017        127.085       0.136604           1470           8741          69941
            0.017        82.3387       0.132525            919           8483          67853
            0.017        140.134       0.132996           1368           8515          68094
            0.017        128.553       0.134527           1078           8613          68878
            0.017        110.182       0.134223           1050           8588          68722
            0.017        127.383       0.134982           1785           8641          69111
            0.017         120.66       0.132727           1406           8499          67956
            0.017        110.636       0.135098           1452           8645          69170
           0.0175         171.46       0.135867           2443           8698          69564
           0.0175        131.481       0.136855           1425           8756          70070
           0.0175        179.476       0.137885           1719           8826          70597
           0.0175        173.638       0.138814           2648           8885          71073
           0.0175        152.247       0.135525           1883           8674          69389
           0.0175        131.291       0.136414           1410           8728          69844
           0.0175        144.904       0.139223           1749           8910          71282
           0.0175        208.611       0.139939           1560           8953          71649
           0.0175        161.674       0.138621           1749           8874          70974
           0.0175        128.896       0.137336           1343           8789          70316
           0.0175         240.75       0.137047           3222           8770          70168
           0.0175        169.673       0.139791           1644           8948          71573
           0.0175        179.254       0.137813           2029           8813          70560
           0.0175        146.046       0.137084           1507           8775          70187
           0.0175        144.263       0.135939           1915           8700          69601
           0.0175        217.026       0.140391           1784           8984          71880
           0.0175        223.398       0.138518           2572           8864          70921
           0.0175        183.075       0.139678           2740           8945          71515
           0.0175         165.37       0.138687           1849           8877          71008
           0.0175        169.117        0.13785           1586           8825          70579
];

rows = size(data, 1);
cols = size(data, 2);

data_delay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+1);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_delay = [data_delay; data(ifirst, 1:cols-5), avg ci];
end

figure(1);
hold on;
plot(data_delay(:,1), data_delay(:,2), symbol);

data_throughput = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+2);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_throughput = [data_throughput; data(ifirst, 1:cols-5), avg ci];
end

figure(2);
hold on;
plot(data_throughput(:,1), data_throughput(:,2), symbol);

data_maxdelay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+3);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_maxdelay = [data_maxdelay; data(ifirst, 1:cols-5), avg ci];
end

figure(3);
hold on;
plot(data_maxdelay(:,1), data_maxdelay(:,2), symbol);


%-------- Saturation Analysis -----------
slope=[];
for i=2:size(data_throughput,1),
    slope(i-1) = (data_throughput(i,2)-data_throughput(i-1,2))/(data_throughput(i,1)-data_throughput(i-1,1));
end

for i=2:size(slope,2),
    if slope(i) < (0.95*mean(slope(1:i)))
        max_pir = data_throughput(i, 1);
        max_throughput = data_throughput(i, 2);
        min_delay = data_delay(i, 2);
        break;
    end
end
